package stringbuilder;
/*
* +号与StringBuilder的联系
* */
public class StringBuilderDemo08 {
    public static void main(String[] args) {
        method01();
        method2();
    }

    private static void method2() {
        String str2 = "c";
        String str3 = str2 +"efg"; // 如果+通过加号内容中含有变量，那么底层就会创建StringBulider对象拼接
        // 在编译后这句代码会替换成：
        // StringBuilder sb = new StringBuilder();
        // sb.append(str);
        // sb.append("efg");
        // String str3 = sb.toString();
        // 最终代码：String str2 = new StringBuilder()/匿名对象/.append(str2).append("efg").toString()
        System.out.println(str3);
    }

    private static void method01() {
        String str = "a"+"b"; // 如果通过+号拼接都是常量，那么底层会有常量优化机制
        // 在编译后，直接把这句代码替换为 String str = "ab"; 不做任何远算
        System.out.println(str);
    }
}
